package com.fileReplace;

import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fileReplace.pojo.ArgsPojo;
import com.fileReplace.pojo.HelpMenu;
import com.fileReplace.util.FileUtils;
import com.fileReplace.util.Log;

/**
 * 
 * @author larry
 * <br>文件处理工具集的程序入口
 * <br>本工具类暂时存在缺陷，不能处理换行的字符串，以后版本将解决！
 *
 */
public class FileMain {
	
	public static void main(String[] args){
		for(String str:args){
			//判断是否有让显示菜单的参数
			if(args==null||str.equalsIgnoreCase("-h")||str.equalsIgnoreCase("-help")||str.equalsIgnoreCase("--help")){
				//显示帮助菜单
				Log.info("welcome to FileReplace!");
				new HelpMenu().printHelpMenu();
				return;
			}
		}
		Map<String,String> argsMap=new HashMap<String,String>();
		
		//处理输入的参数
		for(String arg:args){
			if(!arg.contains("=")){
				Log.info("please check you input !! ");
				return ;
			}
			argsMap.put(arg.split("=")[0].trim(), arg.split("=")[1].trim());
		}
		
		if(argsMap.size()<3){
			Log.info("please check usefull args !!!");
			return;
		}
		//封装参数
		ArgsPojo ap=new ArgsPojo(argsMap);
		
		//根据参数获取所有文件
		FileReader fileReader=new FileReader();
		List<File> fileList=fileReader.findFiles(ap.getFileDir(),ap.getFileType(),ap.isIgnoresDir(),ap.isListFile());
		if(ap.isTodo()){
			FileUtils fus=new FileUtils();
			//根据参数替换文件中的内容
			boolean isSuccess=fus.doReplacedFile(fileList,ap.getOldStr(),ap.getNewStr(),ap.isIgnoreCase());
			if(isSuccess){
				Log.info("处理完成！！！");
			}else{
				Log.info("处理失败！！！");				
			}
		}
	}
	
}
